#!/bin/bash

# 
# 把当前路径下面的所有.out文件的内容全部转换为大写。Added by songbaobao 2021年03月24日 16:57:26
# 
# 
# 主要使用在expect目录，现在可以做到的点:
#
## 1、将忽略 (4 rows) 以及 (1 row)等行
## 2、除此之外的其他行都被处理成大写



##############
# 完成之后的颜色打印
#
GREEN_TEXT_BEGIN="\e[1;32m"
GREEN_TEXT_END="\e[0m"
##############

OIFS=$IFS
#修改默认分隔符
IFS=$'\n'

#BIG=65
#if [ -z "$1" ];then  # 检查命令行参数,如果$1长度为0，则为真
#	echo "Usage: `basename $0` filename"
#    exit $BIG
#fi 

#此句就是将小写转换为大写，牢记！
#tr a-z A-Z < "$1"

# 与上边的作用相同, 但是使用了POSIX字符集标记方法:
# tr '[:lower:]' '[:upper:]' <"$1"

for filename in `ls | grep ".out"`                       
do
	name="$filename"
	#echo $name

	newname=${name}".bak"
	#echo $newname

	#加载文件
	table_list=$(cat ${name})
	#将信息放到数组中
	table_arrs=(${table_list})

	for line in "${table_arrs[@]}"
	do
	#echo "$line"
		count=`echo $line | grep "1 row" | wc -l`
		count2=`echo $line | grep " rows" | wc -l`


		if [[ $count -eq 0 && $count2 -eq 0 ]] ; then
			echo "$line" | tr 'a-z' 'A-Z' >> $newname
		else
			echo "$line" >> $newname	
		fi
	done

	#############
	rm $name
	mv $newname $name
	#############
	if [ $? -eq 0 ];then
		echo -e ${GREEN_TEXT_BEGIN}
		echo -e "$name is OK!"
		echo -e ${GREEN_TEXT_END}
	fi
done

#将IFS变量还原为默认值
IFS=$OIFS

exit 0

